import Vue from "vue";
import App from "./App.vue";
import VueLazyload from 'vue-lazyload'
import ElementUI from "element-ui";
// import * as echarts from 'echarts'
import 'echarts-gl' // 3d图表库

// Vue.prototype.$echarts = echarts
import su from "sudong";

import "element-ui/lib/theme-chalk/index.css";

import router from "./router";
import "./assets/styles/index";

import allComponents from "@/components/index.js";
import http from "@/api/http.js";
import config from "@/common/dsf_config.js";
import extend from "@/common/extend";
import tologinState from "@/common/loginState";

Vue.use(ElementUI);
Vue.use(allComponents); //注入全局组件
Vue.use(extend); //vue扩展
Vue.use(VueLazyload, {
	preLoad: 1.3,
	error: require('../src/assets/imgs/pc/default/404.png'),
	// loading: require('../src/assets/imgs/pc/default/teacher1.png'),
	attempt: 1
}); //懒加载
Vue.prototype.$http = http; //注入axios封装
Vue.prototype.$tologin = tologinState; //注入全局判断登录
Vue.prototype.config = config; //注入默认配置
window.su = su; //全局注入自定义函数（自定义npm包）

Vue.config.productionTip = false;
new Vue({
	router,
	render: h => h(App),
}).$mount("#app");

// 初始化
// beforeCreate(){}
// created()
// beforeMount()
// mounted(){}  初始化显示之后立即调用
// 更新状态
// beforeUpdate(){}
// updated(){}
// 销毁
// beforeDestroy(){} 销毁之前调用
// destroyed(){}销毁完毕

// Vue 扩展插件
//1）vue-cli:vue脚手架
//2) vue-resource(axios):ajax请求
//3) vue-router:路由
//4) vuex:状态管理
//5) vue-lazyload:图片懒加载
//6) vue-scroller:页面滑动相关
//7) mint-ui:基于vue的UI组件库（移动端）
//8) element-ui:基于vue的UI组件库（PC端）

// computed计算属性 与 watch监视

//数组，变异方法
// splice(index,1) //删除
// splice(index,1,newp) //修改

// 数组，过滤
// let newARR = arr.filter(item=>item.age==8);

// @click="test(10,$event)"

// 修饰
// @click.stop  阻止事件冒泡
// @click.prevent   阻止默认行为
// @keyup.center  键盘

// 表单
// <form @submit.prevent="handleSubmit"></form> //阻止跳转

//内存泄漏问题
//销毁定时器

// $refs
// 读取 this

// 全局指令     /src/common/extend.js
// 定义  防止重复点击   使用    <button @click="send" v-clickReTime="5000">按钮</button>
// 定义  字母大写       使用    <b v-upperText="textOne"></b>

// call
// var student = {
//   name: "我是东",
// };
// function getPhone() {
//   this.phone = 10086;
// }
// getPhone.call(student); //可以让一个函数成为指定任意对象的方法进行调用
// console.log(student);
// console.log(student.phone);
